home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / parallax / ibm_pc_d.exe / SAMPLES / SORT.P < prev   
Text File  |  1992-11-06  |  982b  |  46 lines

  1. SYSTEM sort;
  2. (* Odd-Even Transposition Sorting (parallel bubble-sort) *)
  3. CONST n = 10;
  4. CONFIGURATION list [1..n];
  5. CONNECTION left : list[i] -> list [i-1].right;
  6.            right: list[i] -> list [i+1].left;
  7.  
  8. SCALAR k: INTEGER;
  9.        a: ARRAY[1..n] OF INTEGER;
  10.  
  11. VECTOR val,r,l: INTEGER;
  12.        swap   : BOOLEAN;
  13.  
  14. BEGIN
  15.   WriteString('Enter 10 values: ');
  16.   FOR k:=1 TO n DO ReadInt(a[k]) END;
  17.   LOAD(val,a);
  18.   
  19.   FOR k:=1 TO n DO
  20.     PARALLEL
  21.       PROPAGATE.right(val,l);
  22.       PROPAGATE.left(val,r);
  23.       swap := FALSE;
  24.  
  25.       IF ODD(k) THEN
  26.         IF ODD(DIM1) AND (r<val) THEN
  27.           val  := r;
  28.           swap := TRUE
  29.         END
  30.       ELSE
  31.         IF EVEN(DIM1) AND (r<val) THEN
  32.           val  := r;
  33.           swap := TRUE
  34.         END;
  35.       END;
  36.  
  37.       PROPAGATE.right(swap);
  38.       IF swap AND (id_no > 1) THEN val:=l END;
  39.     ENDPARALLEL
  40.   END;
  41.  
  42.   STORE(val,a);
  43.   FOR k:=1 TO n DO WriteInt(a[k],10); WriteLn END;
  44. END sort.
  45.  
  46.